package com.ewayde.common.dto;

import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;


@Data
public class RequestBase {
    /**
     * 唯一请求ID
     * 用处同traceId
     * 例：SaaS-Work-XXX-xxxx-xxxx-xxxx
     */
    @NotBlank(message = "请求ID不能为空")
    private String id;
    /**
     * 时间戳
     */
    @NotNull(message = "timestamp 时间戳不能为空")
    private Long timestamp;
    /**
     * 类型
     * 目前枚举："Deploy｜Action ｜ Check ｜ Package",
     */
    @NotNull(message = "请求类型不能为空")
    private String type;
    /**
     * 唯一业务ID
     * 做幂等处理使用
     * 来源单 id （用来支持重发，id变化，isource不变化）
     */
    @NotNull(message = "唯一业务ID不能为空")
    private String isource;
    /**
     * 业务时间戳
     */
    @NotNull(message = "istamp 时间戳不能为空")
    private Long istamp;
    /**
     * 请求数据
     */
    @NotNull(message = "Data不能为空")
    private RequestData data;
}
